import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

//导入持久化插件(底层是把state数据存入localStorage)
import persiste from 'vuex-persistedstate'
//导入axios
import axios from 'axios'

export default new Vuex.Store({
  //使用插件
  plugins:[ persiste() ],
  //1.state:存储数据
  state: {
    token:'',
    user:{}
  },
  //2.mutations:修改数据
  mutations: {
    //更新token
    // 第一个参数:固定state  第二个参数：载荷
    updateToken(state,val){
      state.token = val
    },
    //更新user
    updateUserInfo(state,val){
      state.user = val
    }
  },
  //3.actions: 异步修改
  actions: {
    //异步更新用户信息
    //第一个参数:固定context,当前store 
    //第二个参数：载荷(一般传ajax参数)
    async getUserInfo(context){
      const {data:res} = await axios.get('/my/userinfo')
      console.log(res)
      //提交mutations更新
      context.commit('updateUserInfo',res.data)
    }
  },
})
